package com.it.mongo.service;

import com.it.mongo.model.dto.BookDTO;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.util.List;

/**
 * @Author xiaozq
 * @Date 2022/11/4 13:20
 * <p>@Description:</p>
 */
public interface BookMongoService {

    /**
     * 新增
     * @param bookDTO
     * @return
     */
    Boolean inserBookInfo(BookDTO bookDTO);

    /**
     * 批量新增
     * @param bookDTOList
     */
    Boolean inserBatchBookInfo(List<BookDTO> bookDTOList);

    /**
     * 修改
     * @param query
     * @param update
     * @return
     */
    Boolean updateBookInfo(Query query, Update update);

    /**
     * 查所有
     * @return
     */
    List<BookDTO> findAllBookInfo();

    /**
     * 根据书名查询：精准
     * @param name
     * @return
     */
    List<BookDTO> findBookInfoByName(String name);

    /**
     * 根据书名查询：模糊
     * @param name
     * @return
     */
    List<BookDTO> findBookInfoReName(String name);


    /**
     * 根据阅读量：范围查
     * @return
     */
    List<BookDTO> findBookInfoReRange(Double minReadedNum, Double maxReadedNum);

    /**
     * 分页-排序查询
     * @param minReadedNum
     * @param maxReadedNum
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<BookDTO> findBookInfoPage(Double minReadedNum, Double maxReadedNum, Integer pageNum, Integer pageSize);

}
